// component/comp1/comp1.ts
import {storeBindingsBehavior} from 'mobx-miniprogram-bindings'
import {store} from '../../store/store'

const myBehavior = require('../../behavior/first-behavior')
Component({
  behaviors:[myBehavior,storeBindingsBehavior],
  storeBindings:{
    store,
    fields:{
      shareVar1:'shareVar1',
      shareVar2:'shareVar2',
      sum:'sum'
    },
    actions:['updateShareVar1']
},
  options:{
    // 所有下划线开头的字段叫纯数据字段（纯数据字段不能用于页面渲染，可以提升性能）
    pureDataPattern:/^_/,
    // 允许使用多个插槽
    multipleSlots:true
  },
  /**
   * 组件的属性列表
   */
  properties: {
      name:{
        type:String,
        default:""
      },
      _name:String
  },

  /**
   * 组件的初始数据
   */
  data: {
      myName:"111",
      age:"子组件10岁"
  },
  observers:{
  // 监听age字段值的变化
  'age,name':function(a, b){
    console.log(a);
    console.log(b);
  }
},
  /**
   * 组件的方法列表
   */
  methods: {
    passToParent(){
      // 向父组件传递参数（第3步）：调用父组件方法并传参
      this.triggerEvent('sync1',{value1:"来自子组件的值"})
    }
    ,    
    addShareData(){
      this.updateShareVar1(5);
    },
  },
  // 组件生命周期
  lifetimes:{
    attached:function(){
      console.log("attch")
    }
  },
  // 组件所在页面的生命周期
  pageLifetimes:{
    show:function(){

    },
    hide:function(){
      
    },
    resize:function(){
      
    },

  }
})
